x86, Intel: Make only EST feature visible to dom0 to enable Cx-state
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 6 May 2008 09:25:34 +0000 (10:25 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 6 May 2008 09:25:34 +0000 (10:25 +0100)
logic. There should be no need to make MWAIT visible.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/traps.c

index ebdf25db4fa8e2e255e2b540d331ed64d22a4356..54776ccc8cd551582bdf8a812cded47bf33e13ca 100644 (file)
@@ -713,8 +713,7 @@ static int emulate_forced_invalid_op(struct cpu_user_regs *regs)
         __clear_bit(X86_FEATURE_PBE, &d);
 
         __clear_bit(X86_FEATURE_DTES64 % 32, &c);
-        if ( !IS_PRIV(current->domain) )
-            __clear_bit(X86_FEATURE_MWAIT % 32, &c);
+        __clear_bit(X86_FEATURE_MWAIT % 32, &c);
         __clear_bit(X86_FEATURE_DSCPL % 32, &c);
         __clear_bit(X86_FEATURE_VMXE % 32, &c);
         __clear_bit(X86_FEATURE_SMXE % 32, &c);
@@ -2148,9 +2147,8 @@ static int emulate_privileged_op(struct cpu_user_regs *regs)
         case MSR_IA32_MISC_ENABLE:
             if ( rdmsr_safe(regs->ecx, regs->eax, regs->edx) )
                 goto fail;
-            regs->eax &= ~MSR_IA32_MISC_ENABLE_PERF_AVAIL;
-            if ( !IS_PRIV(current->domain) )
-                regs->eax &= ~MSR_IA32_MISC_ENABLE_MONITOR_ENABLE;
+            regs->eax &= ~(MSR_IA32_MISC_ENABLE_PERF_AVAIL |
+                           MSR_IA32_MISC_ENABLE_MONITOR_ENABLE);
             regs->eax |= MSR_IA32_MISC_ENABLE_BTS_UNAVAIL |
                          MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL |
                          MSR_IA32_MISC_ENABLE_XTPR_DISABLE;